
///////////////////////////////////////////////////////////////////////////////
//
//  Copyright (c) 2008, Adam Kubach
//  All rights reserved.
//  BSD License: http://www.opensource.org/licenses/bsd-license.html
//
///////////////////////////////////////////////////////////////////////////////

#include "Minerva/Core/Data/Style.h"

#include "Usul/Factory/RegisterCreator.h"

using namespace Minerva::Core::Data;

USUL_FACTORY_REGISTER_CREATOR ( Style );

///////////////////////////////////////////////////////////////////////////////
//
//  Constructor.
//
///////////////////////////////////////////////////////////////////////////////

Style::Style() : BaseClass(),
  _iconstyle ( 0x0 ),
  _labelstyle ( 0x0 ),
  _linestyle ( 0x0 ),
  _polystyle ( 0x0 ),
  _pointstyle ( 0x0 )
{
  this->_addMember ( "labelStyle", _labelstyle );
  this->_addMember ( "lineStyle", _linestyle );
  this->_addMember ( "polyStyle", _polystyle );
  this->_addMember ( "pointStyle", _pointstyle );
}


///////////////////////////////////////////////////////////////////////////////
//
//  Destructor.
//
///////////////////////////////////////////////////////////////////////////////

Style::~Style()
{
}


///////////////////////////////////////////////////////////////////////////////
//
//  Set the polystyle.
//
///////////////////////////////////////////////////////////////////////////////

void Style::polystyle ( PolyStyle * polystyle )
{
	_polystyle = polystyle;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the polystyle.
//
///////////////////////////////////////////////////////////////////////////////

PolyStyle* Style::polystyle() const
{
	return _polystyle.get();
}


///////////////////////////////////////////////////////////////////////////////
//
//  Set the polystyle.
//
///////////////////////////////////////////////////////////////////////////////

void Style::linestyle ( LineStyle * linestyle )
{
	_linestyle = linestyle;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the polystyle.
//
///////////////////////////////////////////////////////////////////////////////

LineStyle* Style::linestyle() const
{
	return _linestyle.get();
}


///////////////////////////////////////////////////////////////////////////////
//
//  Set the iconstyle.
//
///////////////////////////////////////////////////////////////////////////////

void Style::iconstyle ( IconStyle * style )
{
  _iconstyle = style;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the iconstyle.
//
///////////////////////////////////////////////////////////////////////////////

IconStyle* Style::iconstyle() const
{
  return _iconstyle.get();
}


///////////////////////////////////////////////////////////////////////////////
//
//  Set the point style.
//
///////////////////////////////////////////////////////////////////////////////

void Style::pointstyle ( PointStyle * pointstyle )
{
  _pointstyle = pointstyle;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the point style.
//
///////////////////////////////////////////////////////////////////////////////

PointStyle* Style::pointstyle() const
{
  return _pointstyle.get();
}


///////////////////////////////////////////////////////////////////////////////
//
//  Set the lable style.
//
///////////////////////////////////////////////////////////////////////////////

void Style::labelstyle ( LabelStyle * labelStyle )
{
  _labelstyle = labelStyle;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the lable style.
//
///////////////////////////////////////////////////////////////////////////////

LabelStyle* Style::labelstyle() const
{
  return _labelstyle.get();
}
